package dados;

import java.util.List;

import javax.persistence.TypedQuery;

import basicas.Cliente;
import dados.geral.DAOGenerico;
import dados.interfaces.IClienteDAO;

public class ClienteDAO extends DAOGenerico<Cliente> implements IClienteDAO{

	@Override
	public List<Cliente> consultarNomeCliente(String nome) {
		TypedQuery<Cliente> query = entityManager.createQuery("from Cliente c where c.nome like :nome", Cliente.class);
		query.setParameter("nome", "%" + nome + "%");
		return query.getResultList();
	}
	
	@Override
	public List<Cliente> consultarClientePorBairro(String bairro) {
		TypedQuery<Cliente> query = entityManager.createQuery("from Cliente c where c.endereco.bairro like :nome", Cliente.class);
		query.setParameter("bairro", "%" + bairro + "%");
		return query.getResultList();
	}

	@Override
	public List<Cliente> consultarClientePorCidade(String cidade) {
		TypedQuery<Cliente> query = entityManager.createQuery("from Cliente where c.endereco.cidade.nome like :cidade", Cliente.class);
		query.setParameter("cidade", "%" + cidade + "%");
		return query.getResultList();
	}

	@Override
	public List<Cliente> consultarClientePorEstado(String estado) {
		TypedQuery<Cliente> query = entityManager.createQuery("from Cliente c where c.endereco.cidade.unidadefederativa.nome like :nome", Cliente.class);
		query.setParameter("nome", "%" + estado + "%");
		return query.getResultList();
	}

}
